<script setup>
import Footer from "@/components/footer.vue";
import { ref, onMounted } from 'vue';
import axios from 'axios';
import qs from 'qs';

// 使用ref创建响应式数据
const orderArr = ref([]);
const user = ref({});

// 在组件挂载时执行
onMounted(() => {
  // 从sessionStorage中获取用户信息
  user.value = JSON.parse(sessionStorage.getItem('user'));
  console.log(user.value)

  // 列出用户的订单
  axios.post('http://localhost/order/OrdersController/listOrdersByUserId', qs.stringify({
    userId: user.value.userId
  })).then(response => {
    let result = response.data;
    result.forEach(orders => {
      orders.isShowDetailet = false;
    });
    orderArr.value = result;
    console.log(orderArr.value)
  }).catch(error => {
    console.error(error);
  });
});

// 切换订单详情显示的方法
const detailetShow = (orders) => {
  orders.isShowDetailet = !orders.isShowDetailet;
};
</script>

<template>
  <div class="wrapper">
    <!-- header部分 -->
    <header>
      <p>我的订单</p>
    </header>
    <!-- 订单列表部分 -->
    <h3>未支付订单信息：</h3>
    <ul class="order">
      <li v-for="item in orderArr" :key="item.id">
        <div class="order_info" v-if="item.orderState === 0">
          <p>
            {{ item.business?.businessName || '商家名称' }}
            <i class="iconfont icon-daosanjiao" @click="detailetShow(item)"></i>
          </p>
          <div class="info_right">
            <p>&#165;{{ item.orderTotal || 0 }}</p>
            <div class="right_icon">去支付</div>
          </div>
        </div>
        <ul class="order_data" v-show="item.isShowDetailet" v-if="item.orderState === 0">
          <li v-for="odItem in item.list" :key="odItem.id">
            <p>{{ odItem.food?.foodName || '菜品名称'  }} x {{ odItem.quantity }}</p>
            <p>&#165;{{ odItem.food?.foodPrice * odItem.quantity || 0  }}</p>
          </li>
          <li>
            <p>配送费</p>
            <p>&#165;{{ item.business?.deliveryPrice || 0 }}</p>
          </li>
        </ul>
      </li>
    </ul>
    <h3>已支付订单信息：</h3>
    <ul class="order">
      <li v-for="item in orderArr" :key="item.id">
        <div class="order_info" v-if="item.orderState === 1">
          <p>
            {{ item.business?.businessName || '商家名称' }}
            <i class="iconfont icon-daosanjiao" @click="detailetShow(item)"></i>
          </p>
          <div class="info_right">
            <p>&#165;{{ item.orderTotal || 0 }}</p>
          </div>
        </div>
        <ul class="order_data" v-show="item.isShowDetailet" v-if="item.orderState === 1">
          <li v-for="odItem in item.list" :key="odItem.id">
            <p>{{ odItem.food?.foodName || '菜品名称' }} x {{ odItem.quantity }}</p>
            <p>&#165;{{ odItem.food?.foodPrice * odItem.quantity || 0}}</p>
          </li>
          <li>
            <p>配送费</p>
            <p>&#165;{{ item.business?.deliveryPrice || 0}}</p>
          </li>
        </ul>
      </li>
    </ul>
    <!-- 底部菜单部分 -->
    <Footer></Footer>
  </div>
</template>

<style scoped lang="less">
@import url('../assets/font/font_daosanjiao/iconfont.css');

/**********总容器**********/
.wrapper{
  width: 100%;
  height: 100%;
}
/**********header**********/
.wrapper header{
  width: 100%;
  height: 12vw;
  background-color: #0097ff;
  color: #fff;
  font-size: 4.8vw;

  position: fixed;
  left: 0;
  top: 0;
  z-index: 1000;

  display: flex;
  justify-content: center;
  align-items: center;
}
/*********历史订单列表部分**********/
.wrapper h3{
  margin-top: 12vw;
  box-sizing: border-box;
  padding: 4vw;
  font-size: 4vw;
  font-weight: 300;
  color: #999;
}
.wrapper .order{
  width: 100%;
}
.wrapper .order li{
  width: 100%;
}
.wrapper .order li .order_info{
  box-sizing: border-box;
  padding: 2vw 4vw;
  font-size: 4vw;
  color: #666;

  display: flex;
  justify-content: space-between;
  align-items: center;
}
.wrapper .order li .order_info .info_right{
  display: flex;
}
.wrapper .order li .order_info .info_right .right_icon{
  background-color: #f90;
  color: #fff;
  border-radius: 3px;
  margin-left: 2vw;
  user-select: none;
  cursor: pointer;
}
.wrapper .order li .order_data{
  width: 100%;
}
.wrapper .order li .order_data li{
  width: 100%;
  box-sizing: border-box;
  padding: 1vw 4vw;
  color: #666;
  font-size: 3vw;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
</style>